package com.hpin.mlxteacher.ui;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;

import com.alibaba.fastjson.JSONObject;
import com.hpin.mlxteacher.R;
import com.hpin.mlxteacher.base.BaseActivity;
import com.hpin.mlxteacher.utils.CommonUtils;
import com.hpin.mlxteacher.utils.Constant;
import com.hpin.mlxteacher.utils.HttpUtil;


/**
 * 注册输入密码页面
 * Created by Aaron on 15/8/3.
 */
public class RegisterInputActivity extends BaseActivity {

    private EditText et_new_psw;
    private EditText et_new_psw_repeat;
    //type 0 是注册 输入密码  1 是忘记密码 重置密码
    private int type;
//    private String nickName;
//    private String phone;
    private String token;//

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_input_psw);

        mApplication.addActivity(this);

//        type = getIntent().getIntExtra("type", 0);

//        phone = getIntent().getStringExtra("phone");
//        nickName = getIntent().getStringExtra("nickName");
        token = getIntent().getStringExtra("token");

        initWidget();

    }

    private void initWidget() {

        ImageView iv_left = (ImageView) findViewById(R.id.iv_left);
        TextView tv_title = (TextView) findViewById(R.id.tv_title);

//        tv_title.setText(getResources().getString(type == 1 ? R.string.reset_psw : R.string.input_psw));
        tv_title.setText(getResources().getString(R.string.input_psw));

        et_new_psw = (EditText) findViewById(R.id.et_new_psw);
        et_new_psw_repeat = (EditText) findViewById(R.id.et_new_psw_repeat);

        Button btn_commit = (Button) findViewById(R.id.btn_commit);

        iv_left.setOnClickListener(this);
        btn_commit.setOnClickListener(this);

    }

    @Override
    public void widgetClick(View v) {
        switch (v.getId()) {

            case R.id.iv_left:

                finish();

                break;

            case R.id.btn_commit: //完成


                if (CommonUtils.isNull(et_new_psw.getText().toString().trim())) {
                    showToast("请输入新密码");
                    return;
                }

                if (!et_new_psw.getText().toString().trim().equals(et_new_psw_repeat.getText().toString().trim())) {
                    showToast("您两次输入的新密码不一致");
                    return;
                }

                setPsw();

                break;

        }
    }

    /**
     * 设置密码(注册, 忘记密码)
     */
    private void setPsw() {

        JSONObject j = new JSONObject();
        j.put("pwd", CommonUtils.toMd5(et_new_psw.getText().toString().trim().getBytes()));
        j.put("token", token);

        HttpUtil.setPostRequest("注册中...", this, Constant.WEB_ROOT + Constant.REG,
                j.toJSONString(), this.getClass().getName(), new HttpUtil.SuccessListener() {
                    @Override
                    public void setOnSuccessListener(String str) {

                        try {

                            org.json.JSONObject result = new org.json.JSONObject(str);

                            if (result.getInt("code") == Constant.SUCCESS) {
                                //清除所有的activity
                                mApplication.clearActivity();

                                //注册成功. 跳转到登陆页面
                                Intent mIntent = new Intent(RegisterInputActivity.this, LoginActivity.class);
                                startActivity(mIntent);

                            }else {
                                showToast(Constant.showErrorMsg(result.getInt("code"), RegisterInputActivity.this));
                            }

                        }catch (Exception e) {
                            e.printStackTrace();
                            showToast("注册失败");
                        }

                    }
                }, null);

    }

//    @Override
//    public boolean dispatchTouchEvent(MotionEvent ev) {
//        if (ev.getAction() == MotionEvent.ACTION_DOWN) {
//
//            // 获得当前得到焦点的View，一般情况下就是EditText（特殊情况就是轨迹求或者实体案件会移动焦点）
//            View v = getCurrentFocus();
//
//            if (isShouldHideInput(v, ev)) {
//                hideSoftInput(v.getWindowToken());
//            }
//        }
//        return super.dispatchTouchEvent(ev);
//    }
//
//    /**
//     * 根据EditText所在坐标和用户点击的坐标相对比，来判断是否隐藏键盘，因为当用户点击EditText时没必要隐藏
//     *
//     * @param v
//     * @param event
//     * @return
//     */
//    private boolean isShouldHideInput(View v, MotionEvent event) {
//        if (v != null && (v instanceof EditText)) {
//            int[] l = {0, 0};
//            v.getLocationInWindow(l);
//            int left = l[0], top = l[1], bottom = top + v.getHeight(), right = left
//                    + v.getWidth();
//            if (event.getX() > left && event.getX() < right
//                    && event.getY() > top && event.getY() < bottom) {
//                // 点击EditText的事件，忽略它。
//                return false;
//            } else {
//                return true;
//            }
//        }
//        // 如果焦点不是EditText则忽略，这个发生在视图刚绘制完，第一个焦点不在EditView上，和用户用轨迹球选择其他的焦点
//        return false;
//    }
//
//    /**
//     * 多种隐藏软件盘方法的其中一种
//     *
//     * @param token
//     */
//    private void hideSoftInput(IBinder token) {
//        if (token != null) {
//            InputMethodManager im = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
//            im.hideSoftInputFromWindow(token,
//                    InputMethodManager.HIDE_NOT_ALWAYS);
//        }
//    }

    @Override
    protected void onDestroy() {
        super.onDestroy();

        mApplication.cancelPendingRequests(getClass().getName());

    }

//    // /屏蔽按键
//    public boolean onKeyDown(int keyCode, KeyEvent event) {
//        switch (keyCode) {
//            case KeyEvent.KEYCODE_MENU:
//                return true;
//        }
//        return super.onKeyDown(keyCode, event);
//    }
}
